package com.mindskip.xzs.viewmodel.admin.question;
//这段代码定义了一个名为 `QuestionEditRequestVM` 的类，用于表示问题编辑请求的视图模型。该类包含了问题的各个属性，并使用了一些校验注解来确保属性的合法性
//在前端：
//1. 用于封装问题编辑请求的信息，包括问题ID `id`、问题类型 `questionType`、学科ID `subjectId`、标题 `title`、年级 `gradeLevel`、问题项列表 `items` 和项序号 `itemOrder` 等属性。
//2. 提供了对应的 getter 和 setter 方法，用于获取和设置属性的取值和赋值操作。
//在后端：
//1. 用于接收前端传递的问题编辑请求数据，并进行相应的处理。通过该类可以将问题编辑请求的信息传递到后端。
//2. 通过校验注解（如 `@NotNull`、`@NotBlank`、`@Valid`、`@Range` 等），确保接收到的问题编辑请求数据的合法性和准确性，从而提高数据的完整性和可靠性。
//3. 可以在后端进行业务逻辑处理，比如保存问题编辑请求数据到数据库、更新问题信息等操作。

import org.hibernate.validator.constraints.Range;

import javax.validation.Valid;
import javax.validation.constraints.*;
import java.util.List;

/**
 * 问题编辑请求视图模型
 */
public class QuestionEditRequestVM {

    private Integer id; // 问题ID
    @NotNull
    private Integer questionType; // 问题类型
    private Integer subjectId; // 学科ID
    @NotBlank
    private String title; // 标题

    private Integer gradeLevel; // 年级

    @Valid
    private List<QuestionEditItemVM> items; // 问题项列表

    private Integer itemOrder; // 项序号

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getQuestionType() {
        return questionType;
    }

    public void setQuestionType(Integer questionType) {
        this.questionType = questionType;
    }

    public Integer getSubjectId() {
        return subjectId;
    }

    public void setSubjectId(Integer subjectId) {
        this.subjectId = subjectId;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public Integer getGradeLevel() {
        return gradeLevel;
    }

    public void setGradeLevel(Integer gradeLevel) {
        this.gradeLevel = gradeLevel;
    }

    public List<QuestionEditItemVM> getItems() {
        return items;
    }

    public void setItems(List<QuestionEditItemVM> items) {
        this.items = items;
    }

    public Integer getItemOrder() {
        return itemOrder;
    }

    public void setItemOrder(Integer itemOrder) {
        this.itemOrder = itemOrder;
    }
}
